জাভাস্ক্রিপ্টে অবজেক্ট কন্সট্রাক্টর হল এমন একটি ফাংশন যা নতুন অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি অবজেক্ট তৈরির একটি পদ্ধতি, যা প্রোপার্টি এবং মেথডগুলোকে ইনিশিয়ালাইজ করতে সাহায্য করে। অবজেক্ট কন্সট্রাক্টর ফাংশন ব্যবহার করে আপনি একই কাঠামোর অনেকগুলো অবজেক্ট তৈরি করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠনকে উন্নত করে।
কন্সট্রাক্টর ফাংশন হল এমন একটি ফাংশন যা নতুন অবজেক্ট তৈরি করার জন্য new
কিওয়ার্ডের সাথে ব্যবহার করা হয়। কন্সট্রাক্টর ফাংশনের নাম সাধারণত বড় হাতের অক্ষর দিয়ে শুরু হয় যাতে এটি একটি কন্সট্রাক্টর ফাংশন হিসেবে চিহ্নিত করা যায়।
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};
}
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
person1.greet(); // আউটপুট: Hello, my name is Alice and I am 25 years old.
person2.greet(); // আউটপুট: Hello, my name is Bob and I am 30 years old.
এখানে, Person
একটি কন্সট্রাক্টর ফাংশন যা name
এবং age
প্রোপার্টি গ্রহণ করে এবং একটি greet
মেথড সংজ্ঞায়িত করে। new Person("Alice", 25)
ব্যবহার করে একটি নতুন অবজেক্ট তৈরি করা হয়েছে।
new
কিওয়ার্ড কী?new
কিওয়ার্ড একটি কন্সট্রাক্টর ফাংশনকে নতুন অবজেক্ট তৈরি করতে নির্দেশ দেয়। যখন আপনি new
কিওয়ার্ডের সাথে একটি ফাংশন কল করেন, তখন জাভাস্ক্রিপ্ট নিম্নলিখিত পদক্ষেপগুলো সম্পাদন করে:
this
বাইন্ড করা: কন্সট্রাক্টর ফাংশনের this
কিওয়ার্ডটি নতুন অবজেক্টের সাথে বাইন্ড করা হয়।কন্সট্রাক্টর ফাংশনের prototype
প্রোপার্টি ব্যবহার করে আপনি সমস্ত ইনস্ট্যান্স অবজেক্টগুলোর জন্য একটি সাধারণ মেথড বা প্রোপার্টি সংজ্ঞায়িত করতে পারেন। এটি মেমোরি দক্ষতা বাড়ায় কারণ প্রতিটি অবজেক্টে আলাদা মেথড সংরক্ষণ করার পরিবর্তে একটি শেয়ার করা মেথড থাকে।
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
person1.greet(); // আউটপুট: Hello, my name is Alice and I am 25 years old.
person2.greet(); // আউটপুট: Hello, my name is Bob and I am 30 years old.
এখানে, greet
মেথডটি Person.prototype
এ সংজ্ঞায়িত করা হয়েছে, যা সব Person
ইনস্ট্যান্স অবজেক্ট থেকে শেয়ার করা হয়।
ES6 থেকে জাভাস্ক্রিপ্টে ক্লাস সিনট্যাক্স চালু হয়েছে, যা প্রোটোটাইপ-ভিত্তিক কন্সট্রাক্টর ফাংশনের উপর একটি সিম্পল এবং পরিচ্ছন্ন ইন্টারফেস প্রদান করে।
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
person1.greet(); // আউটপুট: Hello, my name is Alice and I am 25 years old.
person2.greet(); // আউটপুট: Hello, my name is Bob and I am 30 years old.
এখানে, Person
একটি ক্লাস যা কন্সট্রাক্টর এবং মেথড সংজ্ঞায়িত করে। ক্লাস সিনট্যাক্স ব্যবহার করে কোড লেখা আরও সহজ এবং পড়তে সুবিধাজনক হয়।
কন্সট্রাক্টর ফাংশনের নাম বড় হাতের অক্ষর দিয়ে শুরু করুন: এটি একটি কন্সট্রাক্টর ফাংশন চিহ্নিত করতে সাহায্য করে।
function Car(make, model) {
this.make = make;
this.model = model;
}
প্রোটোটাইপ মেথড ব্যবহার করুন: মেথডগুলোকে প্রোটোটাইপে সংজ্ঞায়িত করে মেমোরি ব্যবহারের দক্ষতা বাড়ান।
Car.prototype.displayInfo = function() {
console.log(`Make: ${this.make}, Model: ${this.model}`);
};
ইনহেরিটেন্স ব্যবহারের সময় call
বা apply
ব্যবহার করুন: পেরেন্ট কন্সট্রাক্টর ফাংশনের প্রপার্টি ইনিশিয়ালাইজ করতে।
function ElectricCar(make, model, batteryCapacity) {
Car.call(this, make, model);
this.batteryCapacity = batteryCapacity;
}
ElectricCar.prototype = Object.create(Car.prototype);
ElectricCar.prototype.constructor = ElectricCar;
ElectricCar.prototype.displayBattery = function() {
console.log(`Battery Capacity: ${this.batteryCapacity} kWh`);
};
function Book(title, author, pages) {
this.title = title;
this.author = author;
this.pages = pages;
}
Book.prototype.describe = function() {
console.log(`${this.title} by ${this.author}, ${this.pages} pages.`);
};
const book1 = new Book("JavaScript Basics", "John Doe", 300);
const book2 = new Book("Advanced JavaScript", "Jane Smith", 450);
book1.describe(); // আউটপুট: JavaScript Basics by John Doe, 300 pages.
book2.describe(); // আউটপুট: Advanced JavaScript by Jane Smith, 450 pages.
function Magazine(title, publisher, issueNumber) {
Book.call(this, title, publisher, issueNumber);
this.issueNumber = issueNumber;
}
Magazine.prototype = Object.create(Book.prototype);
Magazine.prototype.constructor = Magazine;
Magazine.prototype.describeIssue = function() {
console.log(`${this.title}, Issue No. ${this.issueNumber}`);
};
const mag1 = new Magazine("Tech Today", "Tech Publishers", 42);
mag1.describe(); // আউটপুট: Tech Today by Tech Publishers, 42 pages.
mag1.describeIssue(); // আউটপুট: Tech Today, Issue No. 42
জাভাস্ক্রিপ্টে অবজেক্ট কন্সট্রাক্টর ফাংশন হল এমন একটি শক্তিশালী পদ্ধতি যা নতুন অবজেক্ট তৈরি করতে এবং তাদের প্রোপার্টি ও মেথড ইনিশিয়ালাইজ করতে ব্যবহৃত হয়। কন্সট্রাক্টর ফাংশনের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠন উন্নত হয়, যা ডেভেলপারদের জন্য বড় এবং জটিল অ্যাপ্লিকেশন তৈরি করা সহজ করে তোলে। প্রোটোটাইপ প্রোপার্টি এবং ইনহেরিটেন্সের সাহায্যে মেথড এবং প্রোপার্টি শেয়ার করা যায়, যা মেমোরি ব্যবহারের দক্ষতা বৃদ্ধি করে। যদিও ES6 ক্লাস সিনট্যাক্স এসেছে যা আরও পাঠযোগ্য এবং ব্যবহারে সহজ, কন্সট্রাক্টর ফাংশন এখনও জাভাস্ক্রিপ্টে অবজেক্ট তৈরির একটি মৌলিক উপায় হিসেবে রয়ে গেছে। সঠিক কন্সট্রাক্টর ফাংশন ব্যবহার করলে কোডের মান এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি পায়, যা উন্নত এবং নির্ভরযোগ্য সফটওয়্যার তৈরিতে সহায়ক হয়।
common.read_more